/*
 * File:   Task.h
 * Author: serena
 *
 * Created on 18 June 2013, 06:26
 */
#include <QtCore/qstring.h>

#ifndef TASK_H
#define	TASK_H

class Task {

private:
    QString name;

    /* TODO maybe create another class? it would be wonderful if you can
     * create methods for date manipulation
     */
    struct date_t {
        int year;
        int month;
        int day;
        int hours;
        int minutes;
    };
    // the date in which one is willing to start the task
    date_t initDate;
    date_t dueDate;

    int estimatedSlice;
    int completedSlice;
    enum hardness {
        very_low,
        low,
        medium,
        high,
        very_high
    } estimated_hardness;

    public:
    Task();
    Task(QString,int);
    Task(QString,int,date_t);
    Task(const Task& orig);
    virtual ~Task();
    void changeDueDate(date_t);
    void changeEstimatedSlice(int);
    void save();
    void restore();
};

#endif	/* TASK_H */

